"""
@author: Zhang Wenzhou
@file: app.py
@time: 2023/2/24 0024 9:43:56
"""
# 核心对象配置以及生成文件
import os
from flask import Flask

#第一种
def create_app(config=None):
    app = Flask(__name__)
    #支持不同种方式的配置加载
    #load default configuration
    #app.config -->Config(dict) 就是Config类的实例，Config又继承了字典
    # 读取config.settings里的配置，将存入app.config字典
    app.config.from_object('config.settings')

    #根据系统环境变量加载，保密，加载不同的配置文件
    if 'FLASK_CONF' in os.environ:
        app.config.from_envvar('FLASK_CONF')

    if config is not None:
        if isinstance(config, dict):
            app.config.update(config)
        elif config.endswith(".py"):
            app.config.form_pyfile(config)
    #注册蓝图
    import router
    router.init_app(app)

    # #注册数据模型
    import model
    model.init_db_app(app)
    #
    # #绑定序列化模型
    # import serializer
    # serializer.init_app(app)

    return app


# #第二种
# from config import settings
# class  APP(Flask):
#     def __init__(self):
#         super().__init__(__name__)
#         self.config["HOST"] = settings.HOST
#         self.config["PORT"] = settings.PORT
#
# app = APP()